package com.xyht.medicine_management_system.common.commonReturn;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * @author Ikaros
 * @date 2020/1/26 16:58
 */
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum CommonCodeEnum{

    /**
     * 通用错误代码
     */
    SUCCESS(true, 2000, "操作成功！"),
    INVALID_PARAM(false, 4001, "无效参数"),
    INVALID_PARAM_FORMAT(false, 4001, "无效参数,请按指定格式填写"),
    DATA_INTEGRITY_VIOLATION_EXCEPTION(false, 4002, "数据完整性约束异常"),
    DATA_OVER_LENGTH_EXCEPTION(false, 4002, "数据过长"),
    DATA_SIZE_LIMIT_EXCEPTION(false, 4002, "内容过多超出规定限制"),
    DATA_EXIST(false, 4006, "数据重复"),
    DATA_DECODE_FAIL(false, 4006, "数据解密失败"),
    JSON_PARSE_ERROR0(false, 4003, "json解析失败"),
    FILE_SIZE_LIMIT_EXCEEDED(false, 4004, "上传文件过大"),
    FILE_SIZE_LIMIT_MIN(false, 4004, "上传文件无效"),
    IO_EXCEPTION(false, 4005, "IO异常"),
    DATA_NOT_FOUND(false, 5000, "数据不存在"),
    FAIL(false, 4000, "程序异常，操作失败！"),
    SERVER_ERROR(false, 4055, "系统繁忙，请稍后重试！"),
    UPDATE_FAIL(false,4005,"修改失败"),
    DELETE_FAIL(false,4006,"删除失败"),
    ADD_FAIL(false,4006,"添加失败"),
    REQUEST_TIMEOUT(false,4006,"请求超时"),
    REQUEST_REPEAT(false,4006,"请求过快"),
    CLIENT_FLAG_CHECK_FAIL(false,4006,"系统标识不存在"),

    INVALID_COlUMN(false, 4013, "无效字段，请选择需要导出字段"),
    TIME_ILLEGAL(false,4300,"时间不合法"),

    /**
     * Mqtt相关
     */
    SEND_MESSAGE_TO_SPECIFIED_TOPIC_FAILED(false, 4001, "向指定主题中,发送消息失败(MQTT)"),

    /**
     * 用户相关
     */
    USERNAME_OR_PASSWORD_ERROR(false, 4112, "用户名或密码错误"),
    OLD_PASSWORD_ERROR(false, 4112, "用户原密码错误"),
    OLD_PASSWORD_LIKE_NEW_PASSWORD(false, 4112, "新密码与原密码相同"),
    ACCOUNT_ERR(false, 4113, "账号异常"),
    ACCOUNT_CAN_NOT_USE(false, 4113, "账号不可用或未激活"),
    VERIFY_CODE_CHECK_FAIL(false, 4111, "验证码错误"),
    TOKEN_CHECK_FAIL(false, 4110, "验证失败，请重新登录"),
    TOKEN_TIME_OUT(false, 4101, "登录超时，请重新登录"),
    UNAUTHORIZED(false, 4113, "暂未登录或登录超时,请重新登录"),
    RE_LOGIN(false, 4102, "请重新登陆"),
    PERMISSION_DENY(false, 4103, "没有操作权限"),
    TEL_EXIST(false, 4104, "手机号已注册"),
    TEL_FORMAT_ERROR(false, 4104, "手机号格式错误"),
    TEL_BIND_ERROR(false, 4104, "请输入当前账号绑定手机号"),
    TEL_NOT_BIND(false, 4104, "手机号未绑定账号"),
    ACCOUNT_EXIST(false, 4105, "用户名已注册"),
    ACCOUNT_ILLEGAL(false, 4106, "用户名格式错误"),
    USER_ACCOUNT_EXIST(false, 4107, "用户已注册"),
    USER_NOT_EXIST(false, 4108, "用户不存在"),
    CODE_GET_FAIL(false, 4108, "请勿重复获取手机验证码"),
    CODE_OVERFLOW(false, 4109, "今日当前手机验证码发送已达上限"),
    WX_MP_NOT_BIND(false, 4109, "未绑定公众号"),
    WX_MP_BIND_FAIL(false, 4109, "绑定失败"),
    WX_MP_MINI_APP_NOT_FIND(false, 4109, "该微信号未绑定任何本平台小程序账号，绑定失败"),
    USER_EXAMINE_EXIST(false, 4109, "用户认证申请已存在，请勿重复申请"),
    USER_LOGIN_FLAG_ERR(false, 4109, "用户无登录权限"),
    USER_INVITATION_CODE_EXIST(false, 4109, "用户邀请码已存在"),
    USER_INVITATION_CODE_NOT_EXIST(false, 4109, "用户邀请码不存在"),
    /**
     * 角色管理
     */
    ROLE_EXIST(false, 4200, "角色已存在"),
    ROLE_NOT_EXIST(false, 4200, "角色不存在"),
    ROLE_USER_BIND_EXIST(false, 4200, "用户已绑定此角色"),
    /**
     * 任务
     */
    TASK_NOT_EXIST(false, 4200, "导入任务不存在"),

    /**
     * 权限管理
     */
    AUTH_APP_NOT_EXIST(false,4300,"界面应用不存在"),
    AUTH_RES_NOT_EXIST(false,4300,"权限资源不存在"),
    AUTH_DENY(false,4300,"权限不足"),
    /**
     * 药品管理
     */
    MEDICINE_NOT_EXIST(false,4300,"药品信息不存在"),
    MEDICINE_ADD_REPEAT(false,4300,"请勿重复添加"),
    MEDICINE_NOT_AUTH(false,4300,"无查看权限"),
    MEDICINE_NOT_IS_OFF(false,4300,"删除药品之前,请先下架药品"),
    MEDICINE_IS_OFF(false,4300,"药品已下架"),
    MEDICINE_CODE_REPEAT(false,4300,"药品编码重复,请重新添加"),
    /**
     * 分类管理
     */
    MEDICINE_CLASSIFICATION_NAME_REPEAT(false,4300,"分类名称重复,请重新添加"),
    MEDICINE_CLASSIFICATION_NOT_EXIST(false,4300,"该分类不存在"),
    /**
     * 库存管理
     */
    MEDICINE_STOCK_NOT_EXIST(false,4300,"库存信息不存在"),
    MEDICINE_STOCK_REPEAT(false,4300,"该药品已经有库存"),
    MEDICINE_STOCK_REDUCE_OVER(false,4300,"减少库存数大于库存数量"),
    MEDICINE_STOCK_UPDATE_FAIL(false,4300,"修改库存失败请稍后重试"),
    MEDICINE_STOCK_NOT_NEGATIVE(false,4300,"修改库存数量不能为负数"),
    /**
     * 热销药品
     */
    MEDICINE_HOT_NOT_EXIST(false,4300,"热销药品不存在"),
    /**
     * 推荐药品
     */
    MEDICINE_RECOMMEND_NOT_EXIST(false,4300,"推荐药品不存在"),

    /**
     * 特惠药品
     */
    MEDICINE_SPECIAL_NOT_EXIST(false,4300,"特惠药品不存在"),
    /**
     * 收藏
     */
    COLLECT_NOT_EXIST(false,4300,"收藏不存在"),
    /**
     * 关于我们
     */
    ABOUT_US_NOT_EXIST(false,4300,"关于我们信息不存在"),
    /**
     * @description 资质认证审批
     *
     * @create 2023/11/23
     * @author dxn
    */
    USER_EXAMINE_NOT_EXIST(false,4300,"申请不存在"),
    /**
     * @description 厂家管理
     *
     * @create 2023/11/29
     * @author dxn
     */
    MANUFACTURE_NOT_EXIST(false,4300,"厂家信息不存在"),
    /**
     * @description 药知源
     *
     * @create 2023/11/27
     * @author dxn
     */
    MEDICINE_SOURCE_NOT_EXIST(false,4300,"文章不存在"),
    MEDICINE_SOURCE_CLASSIFICATION_NOT_EXIST(false,4300,"分类不存在"),
    MEDICINE_SOURCE_RELATION_EXIST(false,4300,"已存在关联，请勿重复添加"),
    /**
     * 活动管理
     */
    ACTIVITY_NOT_EXIST(false,4300,"活动不存在"),
    /**
     * 优惠券管理
     */
    COUPON_NOT_EXIST(false,4300,"优惠券不存在"),
    COUPON_TIME_INVALID(false,4300,"请在有效领取时间内领取优惠券"),
    COUPON_GET_COUPON_FAIL(false,4300,"获取优惠券异常,请稍后重试"),
    COUPON_OUT_OF_STOCK(false,4300,"优惠券已被抢完"),
    COUPON_ALREADY_OWNED(false,4300,"当前优惠券领取数量已达上限,请勿重复领取"),
    /**
     * 地址管理
     */
    ADDRESS_NOT_EXIST(false,4300,"地址不存在"),
    /**
     * 购物车管理
     */
    SHOPPING_CART_NOT_EXIST(false,4300,"购物车不存在"),
    /**
     * 积分管理
     */
    POINT_RULE_TIME_CONFLICT(false,4300,"持续时间内有其他规则生效,当前规则暂时不可启用"),
    POINT_RULE_NOT_EXIST(false,4300,"积分规则不存在"),
    POINT_RULE_NOT_AVAILABLE(false,4300,"积分规则不可用"),
    POINT_SHOP_NOT_EXIST(false,4300,"积分商城商品不存在"),
    POINT_USER_POINT_NOT_ENOUGH(false,4300,"积分不足,无法兑换"),
    /**
     * 快递管理
     */
    KUAIDI_SETTING_NOT_EXIST(false,4300,"发货信息未配置"),
    KUAIDI_COMPANY_NOT_EXIST(false,4300,"快递公司未配置"),
    KUAIDI_NOT_EXIST(false,4300,"订单未发货，暂无物流信息"),
    KUAIDI_PRINT_ORDER_FAIL(false,4300,"获取电子面单失败"),
    KUAIDI_COMPANY_EXIST(false,4300,"快递公司已存在"),
    /**
     * 订单管理
     */
    ORDER_MEDICINE_OUT_OF_STOCK(false,4300,"药品库存不足"),
    ORDER_MEDICINE_REDUCE_STOCK_FAIL(false,4300,"减少药品库存失败"),
    ORDER_COUPON_NOT_AVAILABLE(false,4300,"优惠券不可用"),
    ORDER_GENERATION_FAILED(false,4300,"生成订单失败"),
    ORDER_PREPAY_FAILED(false,4300,"预付款失败"),
    ORDER_SCHEDULE_GENERATION_FAILED(false,4300,"创建订单定时任务失败"),
    ORDER_SCHEDULE_UPDATE_FAILED(false,4300,"修改订单定时任务失败"),
    ORDER_EXCEEDS_PAYMENT_TIME(false,4300,"订单超出支付时间"),
    ORDER_NOT_EXIST(false,4300,"订单不存在"),
    ORDER_NOT_OWNER(false, 4300, "非本人订单"),
    ORDER_CANCEL_FAILED(false, 4300, "订单取消失败"),
    ORDER_STATUS_IS_NOT_TO_BE_DELIVERED(false, 4300, "订单非待发货状态"),
    ORDER_STATUS_IS_NOT_TO_BE_RECEIVED(false, 4300, "订单非待收货状态"),
    ORDER_IS_CLOSED(false, 4300, "订单已结束"),
    ORDER_IS_NOT_IN_REFUNDED(false, 4300, "订单不存在售后"),
    ORDER_PAYMENT_TRANSACTION_ID_NOT_EXIST(false, 4300, "支付订单号不存在"),
    ORDER_CAN_NOT_REFUND(false, 4300, "当前订单不可退款"),
    ORDER_PAYMENT_AMOUNT_MISS(false, 4300, "未查询到订单支付数据"),
    ORDER_REFUND_NOT_EXIST(false, 4300, "订单退款记录不存在"),
    ORDER_REFUND_APPROVER_NOT_EXIST(false, 4300, "订单退款审批人不存在"),
    ORDER_REFUND_YOU_ARE_NOT_APPROVER(false, 4300, "非审批人不可审批"),

    ;


    private boolean success;
    private int code;
    private String msg;

    CommonCodeEnum(boolean success, int code, String msg) {
        this.success = success;
        this.code = code;
        this.msg = msg;
    }

    public boolean getSuccess() {
        return success;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

}
